home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / s85xx / s8502b.d64 / listing 22 (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  4KB  |  149 lines

  1. 0 REM *****************************
  2. 1 REM * ADVENTURE-PROGRAMMIERKURS *
  3. 2 REM *                           *
  4. 3 REM *     UEBUNGS-PROGRAMM      *
  5. 4 REM *****************************
  6. 9 REM BASIC-ERWEITERUNG
  7. 10 DATA76,24,1,177,251,145,251,200,208,249,230,252,202,208,244,96,120,160,0,169
  8. 12 DATA160,132,251,133,252,162,32,32,11,1,169,224,132,251,133,252,162,32,32,11
  9. 14 DATA1,169,53,133,1,88,96:FORI=264TO310:READX:POKEI,X:NEXT:SYS264
  10. 16 FORI=710TO730:READX:POKEI,X:NEXT
  11. 18 DATA208,3,76,29,168,32,192,2,32,19,166,56,165,95,233,1,164,96,76,36,168
  12. 20 POKE40996,197:POKE40997,2:POKE1,54
  13. 22 FORI=43168TO43170:READX:POKEI,X:NEXT
  14. 24 FORI=704TO709:READX:POKEI,X:NEXT
  15. 26 DATA32,192,2,32,138,173,76,247,183
  16. 30 GOSUB52000: REM TABELLEN DEFFINIEREN
  17. 100 ZN=1:GOTO1130
  18. 1000 REM A C T I O N M O D U L
  19. 1010 GOSUB50000:REM BEFEHLSEINGABEMODUL
  20. 1100 REM GEHEN IN EIN NEUES ZIMMER
  21. 1105 IFVE<1ORVE>10THEN1200
  22. 1110 IFRI(VE)=0THENPRINT"KEIN WEG IN DIESE RICHTUNG !":GOTO1200
  23. 1120 ZN=RI(VE):PRINT"[147]"
  24. 1130 GOSUB 10000+ZN*100
  25. 1140 RESTORE 10000+ZN*100
  26. 1150 FORI=1TO10:READRI(I):NEXT
  27. 1160 PRINT"MOEGLICHE RICHTUNGEN : ";
  28. 1165 IC=0:FORI=1TO10:IFRI(I)<>0THENPRINTVE$(I);",";:IC=1
  29. 1170 NEXTI
  30. 1175 IFIC=0THENPRINT"KEINE."
  31. 1180 IFIC=1THENPRINTCHR$(20)
  32. 1185 PRINT"ICH SEHE : ";
  33. 1186 IC=0:FORI=1TOOZ:IFOO(I)=ZNTHENPRINTOB$(I);",";:IC=1
  34. 1187 NEXT
  35. 1188 FORI=1TOGZ:IFGE(I)=ZNTHENPRINTGE$(I);",";:IC=1
  36. 1190 NEXT
  37. 1192 IFIC=0THENPRINT"NICHTS BESONDERES."
  38. 1194 IFIC=1THENPRINTCHR$(20)
  39. 1200 REM
  40. 2000 REM REAKTION AUF BEFEHLE (ALLGEMEINE ACTION)
  41. 2100 REM NIMM ROUTINE
  42. 2110 IFVE<>15THEN2200
  43. 2120 IFGE(G1)<>ZNTHENPRINT"ICH SEHE DIESEN GEGENSTAND HIER NICHT !"
  44. 2125 IFGE(G1)=-1THENPRINT"SIE HABEN DIESEN GEGENSTAND BEREITS !"
  45. 2130 IFGE(G1)=ZNTHENGE(G1)=-1:PRINT"OK."
  46. 2200 REM INVENTUR ROUTINE
  47. 2205 IFVE<>22THEN2300
  48. 2210 PRINT"ICH HABE: ";
  49. 2220 IC=0:FORI=1TOGZ:IFGE(I)=-1THENPRINTGE$(I)",";:IC=1
  50. 2225 NEXT
  51. 2230 IFIC=0THENPRINT"NICHTS."
  52. 2235 IFIC=1THENPRINT"[157] "
  53. 2300 REM VERLIER ROUTINE
  54. 2305 IFVE<>18THEN2400
  55. 2310 IFGE(G1)<>-1THENPRINT"ICH HABE DAS NICHT !"
  56. 2320 IFGE(G1)=-1THENGE(G1)=ZN:PRINT"OK."
  57. 2400 REM SCHAU - ROUTINE
  58. 2405 IFVE<>13THEN2500
  59. 2410 IFOB=0ANDG1=0THENPRINT"[147]":VE=0:GOTO1130
  60. 2415 IFOB=1ANDOO(1)=ZNTHENPRINT"DIE TRUHE IST SEHR GROSS."
  61. 2500 GOTO1000
  62. 10000 REM ------- SPIELKARTE -------
  63. 10100 REM RAUM 1 ---------
  64. 10102 DATA 0,3,0,2,0,0,0,0,0,0
  65. 10105 PRINT"RAUM NUMMER 1"
  66. 10120 RETURN
  67. 10200 REM RAUM 2 ---------
  68. 10202 DATA 0,5,1,0,0,0,0,6,0,0
  69. 10205 PRINT"RAUM NUMMER 2"
  70. 10220 RETURN
  71. 10300 REM RAUM 3 ---------
  72. 10302 DATA 1,0,0,0,0,0,0,0,0,4
  73. 10305 PRINT"RAUM NUMMER 3"
  74. 10320 RETURN
  75. 10400 REM RAUM 4 ---------
  76. 10402 DATA 0,0,0,0,0,0,0,0,3,0
  77. 10405 PRINT"RAUM NUMMER 4"
  78. 10420 RETURN
  79. 10500 REM RAUM 5 ---------
  80. 10502 DATA 2,0,0,0,0,0,0,0,0,0
  81. 10505 PRINT"RAUM NUMMER 5"
  82. 10520 RETURN
  83. 10600 REM RAUM 6 ---------
  84. 10602 DATA 0,0,0,0,2,0,0,0,0,0
  85. 10605 PRINT"RAUM NUMMER 6"
  86. 10620 RETURN
  87. 50000 REM ****************************
  88. 50010 REM *     BEFEHLSEINGABE       *
  89. 50020 REM *     BEFEHLSZERLEGUNG     *
  90. 50030 REM *     BEFEHLSCODIERUNG     *
  91. 50040 REM ****************************
  92. 50050 IFUD=1THEN50220
  93. 50060 POKE198,0:BE$="":PRINT"WAS NUN ? ";
  94. 50070 POKE204,0
  95. 50080 GETX$:IFX$=""THEN50080
  96. 50090 IFPEEK(203)=1ORLEN(BE$)>68THENPRINT" ":POKE204,1:GOTO50140
  97. 50100 I=ASC(X$):IFI<65ORI>90THENIFI<>32ANDI<>20ANDI<>34THEN50080
  98. 50110 IFI=20ANDBE$=""THEN50080
  99. 50120 IFI=20THENPOKE204,1:PRINT"[157]  [157][157]";:BE$=LEFT$(BE$,LEN(BE$)-1):GOTO50070
  100. 50130 PRINTX$;:BE$=BE$+X$:GOTO50080
  101. 50140 FORI=1TO10:BE$(I)="":NEXT:WZ=1:FORI=1TOLEN(BE$)
  102. 50150 :IFMID$(BE$,I,1)=" "THENGOSUB50190:GOTO50180
  103. 50160 :IFWZ>10THENPRINT"EINGABE IST ZU LANG !":I=LEN(BE$)+1:GOTO50180
  104. 50170 :BE$(WZ)=BE$(WZ)+MID$(BE$,I,1)
  105. 50180 NEXTI:GOTO50220
  106. 50190 IC=0:FORI1=1TOAZ:IFBE$(WZ)=AU$(I1)THENIC=1
  107. 50200 NEXTI1:IFIC=0THENWZ=WZ+1:RETURN
  108. 50210 BE$(WZ)="":RETURN
  109. 50220 IFUD=1THENUD=0:GOTO50240
  110. 50230 WZ=1:VE=0:OB=0:PE=0
  111. 50240 IC=0:G1=0:G2=0
  112. 50250 FORI=1TOVZ:IFBE$(WZ)=VE$(I)THENVE=I:IC=1
  113. 50251 IFLEN(BE$(WZ))<3THEN50260
  114. 50255 IFBE$(WZ)=LEFT$(VE$(I),LEN(BE$(WZ)))THENVE=I-VAL(RIGHT$(VE$(I),1)):IC=1
  115. 50260 NEXTI:IFIC=1THEN50350
  116. 50270 FORI=1TOGZ:IFBE$(WZ)<>GE$(I)THEN50300
  117. 50280 IC=1:IFG1=0THENG1=I
  118. 50290 G2=I:IFG2=G1THENG2=0
  119. 50300 NEXTI:IFIC=1THEN50350
  120. 50310 FORI=1TOOZ:IFBE$(WZ)=OB$(I)THENOB=I:IC=1
  121. 50320 NEXTI:IFIC=1THEN50350
  122. 50330 FORI=1TOPZ:IFBE$(WZ)=PE$(I)THENPE=I:IC=1
  123. 50340 NEXTI
  124. 50350 IFBE$(WZ)="UND"THENUD=1:IC=1
  125. 50360 IFIC=0THENPRINT"ICH KENNE ";BE$(WZ);" NICHT !":RETURN
  126. 50370 WZ=WZ+1:IFWZ>10ORBE$(WZ)=""ORUD=1THENRETURN
  127. 50380 IC=0:GOTO50250
  128. 52000 REM T A B E L L E N
  129. 52005 RESTORE52000
  130. 52010 REM VERBTABELLE ---------
  131. 52020 DATAN,S,W,O,NW,NO,SW,SO,RAUF,RUNTER
  132. 52030 DATAOEFFNE,SCHLIESSE,SCHAUE,UNTERSUCHE1,NIMM,NEHME1,HOLE2
  133. 52035 DATAVERLIERE,LEGE1,WIRF2,WERFE3,INVENTUR
  134. 52100 VZ=22:DIMVE$(VZ):FORI=1TOVZ:READVE$(I):NEXT
  135. 52200 REM GEGENSTANDSTABELLE ---------
  136. 52210 DATASCHWERT,1
  137. 52211 DATASEIL,2
  138. 52212 DATASCHLUESSEL,4
  139. 52213 DATADIAMANT,5
  140. 52300 GZ=4:DIMGE$(4):DIMGE(4):FORI=1TOGZ:READGE$(I):READGE(I):NEXTI
  141. 52400 REM OBJEKTTABELLE ---------
  142. 52410 DATATRUHE,5
  143. 52412 DATASCHACHT,6
  144. 52414 DATAEISENRING,6
  145. 52416 DATATUER,2
  146. 52418 DATATUER,5
  147. 52500 OZ=5:DIMOB$(OZ):DIMOO(OZ):FORI=1TOOZ:READOB$(I):READOO(I):NEXTI
  148. 53000 RETURN
  149.